Skip to content

Unwire collab_ui, notifications, and Zed Cloud surfaces from the binary - #41

Merged
jasonsmithio merged 8 commits into
mainfrom
rip-collab-livekit
May 24, 2026
Merged

Unwire collab_ui, notifications, and Zed Cloud surfaces from the binary#41
jasonsmithio merged 8 commits into
mainfrom
rip-collab-livekit

Conversation

@jasonsmithio

Copy link
Copy Markdown
Collaborator

Summary

  • Strip the collab_ui crate from the paddleboard binary — remove collab_ui::init, CollabPanel::load, channel-URL handling, app-menu entry, and keybind ToggleFocus registration
  • Delete the Zed Cloud NotificationStore (~430 LOC) from the notifications crate
  • Drop collab/call/livekit surfaces from title_bar (~720 LOC), file_finder (channel-notes search), and git_ui (co-authors-from-collab-room)
  • Net: -1,549 lines across 20 files; cargo check -p paddleboard and ./script/clippy -p paddleboard both clean

The collab/livekit crates themselves still exist in the workspace tree but are no longer referenced by the paddleboard binary. Follow-up PRs will do the deeper surgery: workspace.rs follower-protocol rip, then crate-level deletion of collab_ui, call, collab, and livekit_*.

Test plan

  • cargo check -p paddleboard clean
  • ./script/clippy -p paddleboard (release, all targets, deny warnings) clean
  • Launch debug binary, confirm Collab Panel is gone from View menu and command palette
  • Confirm title bar no longer shows collab/call controls
  • File finder no longer offers channel-notes results

Release Notes:

  • N/A

jasonsmithio and others added 6 commits May 22, 2026 16:42
Step 1 of removing Zed's hosted collab feature from PaddleBoard.

- Delete the entire crates/title_bar/src/collab.rs submodule (722
  LOC): collaborator list, call controls, screen-share popover.
- Remove ActiveCall observers and the share_project /
  unshare_project / observe_diagnostics / active_call_changed
  methods from title_bar.rs.
- Drop call, channel, livekit_client from title_bar/Cargo.toml.
- Update the "Please restart/update PaddleBoard to Collaborate"
  upgrade-required strings to drop the "to Collaborate" suffix;
  the surface still applies to the cloud LLM connection.

cargo check -p title_bar is clean. The collab_ui crate still
references title_bar::collab::* and will fail to build until it is
itself stripped in a later commit on this branch.

Release Notes:

- N/A

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Step 2 of removing Zed's hosted collab feature from PaddleBoard.

The file finder used to surface "Channel Notes" entries inline with
file matches, dispatching workspace::OpenChannelNotesById on confirm.
Without the channel/collab_ui crates there's no channel store to
read from, so drop the entire Match::Channel variant and every
match arm that handled it.

- Remove Match::Channel from the Match enum and every place it's
  matched (relative_path, abs_path, panel_match, match_score,
  labels_for_match, confirm, render_match, and the test helpers).
- Remove the channel-matching block (~60 lines) that read channels
  from ChannelStore and scored them by name.
- Drop the channel_store field from FileFinderDelegate.
- Drop channel, client, and fuzzy from file_finder/Cargo.toml.
  `fuzzy::StringMatch{,Candidate}` were only used by the channel
  path; `client::ChannelId` likewise.

cargo check -p file_finder --tests is clean. The include_channels
setting in FileFinderSettings stays (settings_content/open_path_prompt
crates untouched); it just no longer has anything to gate.

Release Notes:

- Removed the file finder's "Channel Notes" inline matches (Zed Cloud collab feature, never functional in PaddleBoard).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Step 3 of removing Zed's hosted collab feature from PaddleBoard.

NotificationStore handled the rpc::Notification stream from the
Zed Cloud collab server: contact requests, channel invitations,
channel-message mentions. Without the channel/collab_ui crates
there's nothing left to surface from it. Only collab_ui (going
away) and collab integration tests (going away) used it.

The local StatusToast UI is a separate surface in this same crate
and stays — agent_ui, keymap_editor, etc. all use it.

- Delete crates/notifications/src/notification_store.rs (428 LOC).
- Reduce notifications.rs to just `pub mod status_toast;`.
- Strip channel, client, rpc, sum_tree, time, anyhow, futures-lite,
  util from Cargo.toml — all were only used by NotificationStore.

cargo check -p notifications is clean. paddleboard still calls
notifications::init() (in main.rs and zed.rs) which no longer
exists; those call sites are removed in a later commit on this
branch as part of stripping paddleboard's collab_ui wiring.

Release Notes:

- N/A

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Step 4 of removing Zed's hosted collab feature from PaddleBoard.

When committing inside a Zed Cloud collab room, the git panel
suggested everyone in the room as a "Co-authored-by:" line on
the commit message. Without the call/channel crates there is no
room to read from, so collapse the entire feature.

- potential_co_authors becomes a no-op returning Vec::default().
- Delete local_committer(&self, room: &call::Room, ...) which read
  the local participant from the room.
- Delete pub fn load_local_committer and its commit_modal caller;
  it cached the local git committer for the room-suggestion path,
  which no longer exists.
- Remove the local_committer and local_committer_task fields and
  their constructor inits.
- In Render::render, drop the `let room = ...` binding and replace
  has_co_authors with `false`. The ToggleFillCoAuthors action is
  still defined but the action handler is gated on
  has_write_access && has_co_authors so it stays disabled.
- Drop GitCommitter / get_git_committer imports (only used by the
  removed code path) and call from git_ui/Cargo.toml.

cargo check -p git_ui is clean. The add_coauthors field,
toggle_fill_co_authors action handler, render_co_authors helper,
and fill_co_authors method are intentionally preserved: they're
gated on potential_co_authors being non-empty, so they short-
circuit safely. Keeping them minimizes the upstream-file diff.

Release Notes:

- Removed the git panel's "suggest co-authors from collab room" feature (Zed Cloud collab feature, never functional in PaddleBoard).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Drops the collab_ui crate as a paddleboard dependency and removes every
call site that pulled CollabPanel / ChannelView / collab_ui::init into
the running app: main.rs init block + zed-link URL handling + zed.rs
panel registration and ToggleFocus action + View > Collab Panel menu
item + the test bootstrap. Also drops two notifications::init(...)
calls that were left behind when the Zed Cloud NotificationStore was
deleted.

The collab_ui crate stays in the workspace tree (still has compile
errors from prior surface rips); it just is not compiled into the
paddleboard binary anymore. This makes the workspace.rs AutoWatch /
screen-share / leader-routing surface truly dead, which a follow-up
commit can then strip without the collab_ui consumer ghost-pinning it.

Also drops a stale call::RemoteParticipant doc comment from the
workspace shim that it abstracts away.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@github-actions

github-actions Bot commented May 24, 2026

Copy link
Copy Markdown

Upstream drift report

Comparing PaddleBoard HEAD (fd62b60274) against zed-industries/zed:main (eb2223c080).
Last common ancestor: 8ca194d833.

Crate Files Insertions Deletions // PaddleBoard: tags
crates/agent 26 +25357 -1407 0
crates/agent_ui 33 +4477 -3836 6
crates/buffer_diff 1 +0 -4 0
crates/client 5 +116 -316 2
crates/collab 6 +20 -60 0
crates/collab_ui 2 +2 -2 0
crates/editor 15 +347 -542 0
crates/gpui 6 +60 -447 0
crates/language 2 +4 -2 0
crates/language_core 0 +0 -0 0
crates/lsp 0 +0 -0 0
crates/multi_buffer 0 +0 -0 0
crates/project 20 +1309 -689 1
crates/rope 0 +0 -0 0
crates/settings_content 6 +197 -31 6
crates/text 0 +0 -0 0
crates/workspace 12 +176 -657 1
Total 134 +32065 -7993 16

Generated by script/check-upstream-drift. See FORK_HYGIENE.md for context.

jasonsmithio and others added 2 commits May 24, 2026 08:39
Remove the screen-sharing / auto-watch feature surface from workspace,
call, and feature_flags:

- workspace.rs: delete AutoWatch enum, open_shared_screen,
  toggle_auto_watch, shared_screen_for_peer, and the three
  handle_auto_watch_* methods. Remove is_sharing_screen,
  create_shared_screen, and peer_ids_with_video_tracks from the
  AnyActiveCall trait. Drop RemoteVideoTracksChanged,
  LocalScreenShareStarted, LocalScreenShareStopped from
  ActiveCallEvent. Remove ScreenShare action.

- call_impl/mod.rs: remove the matching trait impl methods and
  event-mapping arms. Clean up now-unused imports.

- feature_flags: delete AutoWatchFeatureFlag (only consumer was
  the already-unlinked collab_ui).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@jasonsmithio
jasonsmithio merged commit bc42ef7 into main May 24, 2026
1 check passed
jasonsmithio added a commit that referenced this pull request May 26, 2026
Remove the crate directory, workspace member entry, and collab test
dependency. The crate was already unlinked from the binary in PR #41.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
jasonsmithio added a commit that referenced this pull request May 31, 2026
Unwire collab_ui, notifications, and Zed Cloud surfaces from the binary
jasonsmithio added a commit that referenced this pull request May 31, 2026
Remove the crate directory, workspace member entry, and collab test
dependency. The crate was already unlinked from the binary in PR #41.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant